(load "./include/sala.scm")
(load  "./include/personagem.scm")
(load "./include/chave.scm")
(load "./include/saida.scm")

;; perso: nome descricao sala-atual objeto
;; sala:  nome descricao saida-norte saida-sul saida-leste saida-oeste objetos personagens
;; saida: nome descricao sala-saida sala-entrada has-porta? trancada? chave-que-abre
;; chave: nome descricao saida

(define sala1 (cria-sala #f #f #f #f #f #f '() '()))
(define sala2 (cria-sala #f #f #f #f #f #f '() '()))
(define sala3 (cria-sala #f #f #f #f #f #f '() '()))
(define sala4 (cria-sala #f #f #f #f #f #f '() '()))

(define saida1 (cria-saida 'saida_1 #f #f #f #f #f #f))
(define saida2 (cria-saida 'saida_2 #f #f #f #f #f #f))
(define saida3 (cria-saida 'saida_3 #f #f #f #f #f #f))
(define saida4 (cria-saida 'saida_4 #f #f #f #f #f #f))

(define chave1 (cria-chave 'chave1 "Chave que abre a porta sul da sala1" sala2))
(define personagem1 (cria-personagem "João de Souza" "O Hacker" #f '()))
(define personagem2 (cria-personagem "Maria dos Santos" "A Super-Dona-de-Casa" #f '()))

((sala1 'set-nome) 'sala1)
((sala1 'set-descricao) "Uma Sala em Um Casebre")

((sala1 'set-saida-sul) saida1)
((sala1 'set-saida-norte) saida2)
((sala1 'set-saida-leste) saida3)
((sala1 'set-saida-oeste) saida4)

((saida1 'set-has-porta?) #t)

((personagem1 'set-sala-atual) sala1)
((personagem2 'set-sala-atual) sala1)
((personagem1 'add-objeto) chave1)
((personagem1 'tem-objeto?) chave1)
((personagem1 'get-objetos))
((((personagem1 'get-sala-atual)) 'get-nome))
((personagem1 'olhar-sala))


((sala1 'add-personagem) personagem2)
((sala1 'add-personagem) personagem1)
((sala1 'get-personagens))
((sala1 'tem-personagem?) personagem1)
((sala1 'set-personagens) '())
